/*
 * Copyright 2025 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package androidx.compose.remote.integration.view.demos.examples

import androidx.compose.remote.creation.RemoteComposeContext
import androidx.compose.remote.creation.RemoteComposeWriter
import androidx.compose.remote.player.core.RemoteDocument
import androidx.compose.remote.tooling.preview.RemoteDocPreview
import androidx.compose.runtime.Composable

/**
 * Build a [RemoteDocument] from a [RemoteComposeContext] display it in the Android Studio Preview.
 */
@Composable
@Suppress("RestrictedApiAndroidX")
internal fun RemoteDocPreview(remoteComposeContext: RemoteComposeContext) {
    val doc = remoteComposeContext.writer
    RemoteDocPreview(doc)
}

/**
 * Build a [RemoteDocument] from a [RemoteComposeWriter] display it in the Android Studio Preview.
 */
@Composable
@Suppress("RestrictedApiAndroidX")
internal fun RemoteDocPreview(remoteComposeWriter: RemoteComposeWriter) {
    val buffer = remoteComposeWriter.buffer.buffer.cloneBytes()
    val remoteDocument = RemoteDocument(buffer)

    RemoteDocPreview(remoteDocument)
}
